package cn.com.zetatech.loader.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author jian.chen@zetatech.com.cn
 * @Description TODO
 * @Date 2024/8/17 2:05
 */
public class RegexUtil {

    /**
     * 使用指定的正则表达式提取字符串中 ".nas" 前的部分。
     *
     * @param input 输入的字符串
     * @return 提取出的字符串部分，如果没有匹配则返回 null
     */
    public static String extractPrefixBeforeNas(String input) {
        String regex = ".{3}(?=\\.db/)";
            Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);

        if (matcher.find()) {
            return matcher.group();
        }
        return null;
    }

    /**
     * 使用指定的正则表达式提取 ".nas/" 后的部分。
     *
     * @param input 输入的字符串
     * @return 提取出的字符串部分，如果没有匹配则返回 null
     */
    public static String extractAfterNas(String input) {
        String regex = "\\.nas/([^/]+)";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);

        if (matcher.find()) {
            return matcher.group(1);
        }
        return null;
    }
    /**
     * 使用指定的正则表达式提取 /文件名
     *
     * @param input 输入的字符串
     * @return 提取出的字符串部分，如果没有匹配则返回 null
     */
    public static String extractFileName(String input) {
        String regex = ".*/([^/]+)$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);

        if (matcher.find()) {
            return matcher.group(1);
        }
        return null;
    }

    /**
     * 工具方法的示例用法。
     */
    public static void main(String[] args) {
        // 示例1: 提取 ".**" 前的部分
        String prefixResult = RegexUtil.extractPrefixBeforeNas("tas-tas.db/test/");
        if (prefixResult != null) {
            System.out.println("Prefix before .nas: " + prefixResult);//输出 op
        } else {
            System.out.println("未找到匹配项");
        }

        // 示例2: 提取 ".**/" 后的部分
        String afterNasResult = RegexUtil.extractAfterNas("tas-op.nas/test/");
        if (afterNasResult != null) {
            System.out.println("After .nas/: " + afterNasResult);//输出 test
        } else {
            System.out.println("未找到匹配项");
        }

        // 示例3
        String fileName = RegexUtil.extractFileName("/3b4f3f7233e68e9f-ems-ws-48853be000000000.parq");
        if (fileName != null) {
            System.out.println("fileName .fileName/: " + fileName);//
        } else {
            System.out.println("未找到匹配项");
        }
    }

}
